iT邦幫忙

2024 iThome 鐵人賽

DAY 3
1
自我挑戰組

學習網頁開發系列 第 3

git 協作流程

  • 分享至 

  • xImage
  •  

這是簡易版的協作過程,且只包含上線前的流程。

從零開始

  1. 從 github clone 下相關 repository ,主要包含兩個已建好分支:main, dev. 指令為 git clone <repo>
  2. switch/checkout 到基準 branch。(通常為devmain在正式上線前不動。)
  3. 以基準 branch 開出自己的工作分支。命名依不同團隊規範而有所不同。建議可以與 Github 上的 issue id 綁定,並在該 issue 下寫清楚這個 branch 的功能與目標。
  4. 可定期,例如半天或是一天,或是某個小功能完成時,在自己的分支 commit 並 push 到同名的分支。

發 PR

當目前的 Issue 完成時,即可從自己的分支,發 PR 到主幹dev上。這時有幾種情況:

  • 可以合併。這時便由團隊其他人 Review 內容。假使被拒,便拉回本地改完問題再上線。
  • 不能合併,因為有衝突。這時候就是拉下來,開始跟溝通衝突的作者解衝突。

解衝突

當遠端主要分支dev接受了其他人的 PR 時,這時候其歷史和檔案內容就可能與本地當初下載的dev不一樣。這時候要先 fetch 下最先的版本,本地分支 merge 或是 rebase 最新版本。至於選哪個要看個人選擇,因為 merge 會長出新的節點並保留平行線,rebase 則會接到新的版本上,保持一條線的整潔,但會喪失正確的歷史紀錄。

不論是 merge 或是 rebase 時,只要遇到衝突時,mergerebase 就會停下來,這時候就手動去解不一致的檔案內容。

決定好後,我們就可以繼續。這時候會下 git add ..... ,然後 git commit -m 'message' 或是 git rebase --continue

但假釋不幸少打指令參數, merge 或是 rebase 都有可能遇到要求增加 commit 文字的問題。這時候可能會自動跳入 vim 要求我們寫下我們的 commit 敘述。如何操作可以參考最下面的 Vim 操作

好了後,merge 應該就結束了,而 rebase 則要看情況,有的時候要繼續跑 git rebase --continue 直到完成。

Vim 操作

我們的目標很簡單,就是寫入commit 描述而已。所以在 vim 介面中我們要做以下步驟:

  1. i => 進入 編輯模式
  2. 在任何非 # 開頭的一行打下 commit 描述
  3. Esc => 跳出 編輯模式
  4. :wq 並按 Enter 結束 Vim。
    (w: write, q: quit)

上一篇
Python 描述器
下一篇
Python super() 到底在幹嘛
系列文
學習網頁開發13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言